package exceptionDemo;

import java.util.InputMismatchException;
import java.util.Scanner;

/*
 * 使用throws声明方法抛出异常
 */

public class Test2 {
	// 计算两个数的商
	public void divide() throws InputMismatchException, ArithmeticException{
		Scanner input = new Scanner(System.in);
			System.out.println("请输入被除数：");
			int num1 = input.nextInt();
			System.out.println("请输入除数：");
			int num2 = input.nextInt();
			System.out.println(num1 + "/" + num2 + "=" + num1 / num2);
	}
	
	// 方法一：对于申明了抛出异常的方法，在调用时处理异常
	/*public static void main(String[] args) {
		Test2 test = new Test2();
		try {
			test.divide();
		} catch (InputMismatchException ex) {
			// 数据类型不匹配异常处理代码
			System.err.println("输入有误，除数或者被除数必须为整型");
			ex.printStackTrace();
			return;
		} catch (ArithmeticException ex) {
			// 算数异常处理代码
			System.out.println("输入有误，除数不能为0");
			ex.printStackTrace();
			System.exit(1); // finally唯一不执行的情况
		}
	}*/
	
	// 方法二：不想处理，继续抛出异常
	public void calc() throws InputMismatchException, ArithmeticException {
		Test2 test = new Test2();
		test.divide();
	}
}
